# Linear and nonlinear response calculation for AlP
# Perturbations: electric fields & atomic displacements
# Use of 'full DFPT' method for third derivatives,
# so we need to solve Second Order Sternheimer equation
ndtset 7
#DATASET1 : scf calculation: GS WF in the IBZ
#********************************************
prtden1 1 # save density on disk, will be used in other datasets
prtwf1 1 # save WF on disk, will be used in other datasets
kptopt1 1 # use Irreducible Brillouin Zone (all symmetry taken into account)
toldfe1 1.0d-12 # SCF convergence criteria (could be tolwfr or tolvrs)
#DATASET2 : non scf calculation: GS WF in half BZ
#*****************************************************
getden2 1 # use density from dataset 1
kptopt2 2 # use Half Brillouin Zone (only time-reversal symmetry taken into account)
getwfk2 1 # use GS WF from dataset 1 (as input)
iscf2 -2 # non-self-consistent calculation
tolwfr2 1.0d-22 # convergence criteria on WF, need high precision for response
prtwf2 1 # save WF on disk, will be used in other datasets
#DATASET3 : derivative of WF with respect to k points (d/dk)
#**********************************************************
getwfk3 2 # use GS WF from dataset 2
kptopt3 2 # use Half Brillouin Zone (only time-reversal symmetry taken into account)
rfelfd3 2 # compute 1st-order WF derivatives (d/dk)
rfdir3 1 1 1 # compute all directions
tolwfr3 1.0d-22 # convergence criteria on 1st-order WF
prtwf3 1 # save 1st-order WF on disk, will be used in other datasets
#DATASET4 : response functions (2nd derivatives of E)
# and corresponding 1st order WF derivatives
# phonons, electric fields, and strains are all done
#**************************************************************
getwfk4 2 # use GS WF from dataset 2
kptopt4 2 # use Half Brillouin Zone (only time-reversal symmetry taken into account)
getddk4 3 # use ddk WF from dataset 3 (needed for electric field)
rfphon4 1 # compute 1st-order WF derivatives with respect to atomic displacements...
rfatpol4 1 2 # ...for all atoms (so here only 1 and 2)
rfdir4 1 1 1 # compute all directions
rfelfd4 3 # compute 1st-order WF derivatives with respect to electric field
rfstrs4 3 # compute 1st-order WF derivatives with respect to strains
tolvrs4 1.0d-12 # SCF convergence criteria (could be tolwfr)
prepanl4 1 # make sure that response functions are correctly prepared for a non-linear computation
prtwf4 1 # save 1st-order WF on disk, will be used in other datasets
prtden4 1 # save 1st-order density on disk, will be used in other datasets
# DATASET5 : 2nd order WF derivatives with respect to k-points (d/dkdk)
#**********************************************************************
rf2_dkdk5 1 # compute 2nd-order WF derivatives (d/dkdk)
getwfk5 2 # use GS WF from dataset 2
kptopt5 2 # use Half Brillouin Zone (only time-reversal symmetry taken into account)
getddk5 3 # use 1st-order WF from dataset 3
prepanl5 1 # compute only needed directions for the non-linear computation
tolwfr5 1.0d-22 # convergence criteria on 2nd-order WF
prtwf5 1 # save 2nd-order WF on disk, will be used in other datasets
# DATASET6 : 2nd order WF derivatives with respect to electric field and k-points (d/dkde)
#*****************************************************************************************
rf2_dkde6 1 # compute 2nd-order WF derivatives (d/dkde)
getwfk6 2 # use GS WF from dataset 2
getddk6 3 # use 1st-order WF (d/dk) from dataset 3
get1den6 4 # use 1st-order densities from dataset 4
getdelfd6 4 # use 1st-order WF (d/de) from dataset 4
getdkdk6 5 # use 2nd-order WF (d/dkdk) from dataset 5
prepanl6 1 # compute only directions needed for nonlinear computation
tolwfr6 1.0d-22 # convergence criteria on 2nd-order WF
kptopt6 2 # use Half Brillouin Zone (only time-reversal symmetry taken into account)
prtwf6 1 # save 2nd-order WF on disk, will be used in other datasets
#DATASET7 : 3rd derivatives of E
#*********************************
getwfk7 2 # use GS WF from dataset 2
getddk7 3 # use 1st-order WF (d/dk) from dataset 3
get1den7 4 # use 1st-order densities from dataset 4
get1wf7 4 # use 1st-order WFs from dataset 4
getdkde7 6 # use 2nd-order WF (d/dkde) from dataset 6
kptopt7 2 # use Half Brillouin Zone (only time-reversal symmetry taken into account)
optdriver7 5 # compute 3rd order derivatives of the energy
usepead7 0 # no use of pead method, so use full DFPT instead
d3e_pert1_elfd7 1 # activate electric field for 1st perturbation...
d3e_pert1_phon7 1 # ...and also atomic displacements...
d3e_pert1_atpol7 1 2 # ...for all atoms (so here only 1 and 2)...
d3e_pert1_dir7 1 1 1 # ...for all directions (for both atomic displacements and electric fields)
d3e_pert2_elfd7 1 # activate electric field for 2nd perturbation...
d3e_pert2_dir7 1 1 1 # ...for all directions
d3e_pert3_elfd7 1 # activate electric field for 3rd perturbation...
d3e_pert3_dir7 1 1 1 # ...for all directions
#Definition of the unit cell
# these cell parameters were derived from a relaxation run done with the
# current ecut and kpt values. The current ecut value used is very low but
# is done to speed the calculations.
# acell 7.2728565836E+00 7.2728565836E+00 7.2728565836E+00 Bohr # ecut 5
# acell 7.2511099467E+00 7.2511099467E+00 7.2511099467E+00 Bohr # ecut 30
acell 7.1391127387E+00 7.1391127387E+00 7.1391127387E+00 Bohr # ecut 2.8
rprim 0.0000000000E+00 7.0710678119E-01 7.0710678119E-01
7.0710678119E-01 0.0000000000E+00 7.0710678119E-01
7.0710678119E-01 7.0710678119E-01 0.0000000000E+00
#Definition of the atom types and pseudopotentials
ntypat 2 # two types of atoms
znucl 15 13 # the atom types are Phosphorous and Aluminum
# the following norm-conserving pseudopotentials are stored in the abinit distribution, but are freely
# available through www.pseudo-dojo.org
# this set uses the Perdew-Wang parameterization of LDA for the xc model
pp_dirpath "$ABI_PSPDIR"
pseudos "Pseudodojo_nc_sr_04_pw_standard_psp8/P.psp8, Pseudodojo_nc_sr_04_pw_standard_psp8/Al.psp8"
#Definition of the atoms
natom 2 # two atoms in the cell
typat 1 2 # type 1 is Phosphorous, type 2 is Aluminum (order defined by znucl above and pseudos list)
nband 4 # nband is restricted here to the number of filled bands only, no empty bands.
nbdbuf 0
# atomic positions in units of cell vectors
xred
1/4 1/4 1/4
0 0 0
#Numerical parameters of the calculation : planewave basis set and k point grid
ecut 2.8 # this value is very low but is used here to achieve very low calculation times.
# in a production environment this should be checked carefully for convergence and
# a more reasonable value is probably around 30
ecutsm 0.5
dilatmx 1.05
ngkpt 6 6 6 # must be checked carefully for convergence, Raman calculations converge slowly with kpt
nshiftk 4 # this Monkhorst-Pack shift pattern is used so that the symmetry of the shifted grid
# is correct. A gamma-centered grid would also have the correct symmetry but would be
# less efficient.
shiftk 0.5 0.5 0.5
0.5 0.0 0.0
0.0 0.5 0.0
0.0 0.0 0.5
# scf parameters
nstep 8 # limit number of steps for the tutorial, in general this should be set to its
# default (30) or higher
# suppress printing of density, wavefunctions, etc except what is
# explicitly requested above in the ndtset section
prtwf 0
prtden 0
prteig 0
#%%
#%% [setup]
#%% executable = abinit
#%% [files]
#%% files_to_test =
#%% tnlo_6.abo, tolnlines=332 , tolabs=2.0e-4, tolrel=9.0e-2
#%% [paral_info]
#%% max_nprocs = 2
#%% [extra_info]
#%% authors = L. Baguet
#%% keywords = NC, DFPT, NONLINEAR
#%% description =
#%% Linear and nonlinear response calculation for AlP
#%% Perturbations: electric fields & atomic displacements.
#%% 'Full' DFPT computation of third derivatives in Nonlinear (dataset 7).
#%% Preceded by resolution of Second-order Sternheimer equations (dataset 5 and 6).
#%%